// Package main
// Created by GoLand
// @User: lenora
// @Date: 2023/11/22
// @Time: 15:44

package main


//方法作为变量使用
func func1()  {
	var funcItem = func2
	num,_ := funcItem(1,2)
	println(num)
	
	func3()
	func4Invoke()

}

func func2(a,b uint)  (uint,error){
	return a+b, nil
}

func func3()  {
	//局部方法/匿名方法
	fn := func(name string) string {
		return "hello " + name
	}
	str := fn("golang")
	println(str)
}

//返回值为方法
func func4() func(name string) string  {
	return func(name string) string {
		return "hello, " + name
	}
}

func func4Invoke()  {
	//fn值为func4的返回值
	//fn("")的返回值才是匿名函数的返回值
	fn := func4()
	str := fn("golang")
	println(str)
}
